package cn.net.Collection;
//
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
/**
 * 本类用来完成Map集合相关练习
 * 需求:提示并接收用户输入的一串字符,并且统计出每个字符[char类型],出现的次数[int类型]。但不可以使用基本类型,需要使用包装类型*
 * */
public class TestMapCase {
    public static void main(String[] args) {
        //1.提示用户输入要统计的字符串
        System.out.println("请输入您要统计的字符串");
        //2.接收用户输入的要统计的字符串
        String input = new Scanner(System.in).nextLine();
        //3.获取到用户输入的每个字符,String底层维护的是char[];次数为int对应的Integer
        /**创建map集合存放数据并进行迭代遍历。*/
        Map<Character,Integer>  map = new HashMap<>();//Map<K,V>具有映射关系
        for (int i = 0; i <input.length() ; i++) {
            char key = input.charAt(i);//charAt(i)获取一个字符串中每一个字符
            System.out.println("第"+(i+1)+"个字符："+key);
            //4.统计每个字符出现的次数value即出现频率
            Integer value = map.get(key);//获取value值
            if(value==null){////如果判断为null,说明之前没有存过这个字符
                map.put(key, 1);//把当前字符位置作为key存入,次数存1

            }else {//不为空null则存过该值
                map.put(key, value+1);//如果存过值,给之前的次数+1
            }
        }
        //循环外打印
        System.out.println("各个字符出现的频率为:"+map);
        //System.out.println(map);



    }
}
